package com.fumin.dao;

import com.fumin.model.SysRoleUser;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

public interface SysRoleUserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysRoleUser record);

    int insertSelective(SysRoleUser record);

    SysRoleUser selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SysRoleUser record);

    int updateByPrimaryKey(SysRoleUser record);

    /**
     * 根据用户ID查找所有已经分配拥有的角色ID集合
     * @param userId
     * @return
     */
    List<Integer> getRoleIdListByUserId(@Param("userId") int userId);

    /**
     * 根据角色ID查找已经具有该角色的用户ID集合
     * @param roleId
     * @return
     */
    List<Integer> getUserIdListByRoleId(@Param("roleId") int roleId);

    /**
     * 删除角色对应的用户
     * @param roleId
     */
    void deleteByRoleId(@Param("roleId") int roleId);

    /**
     * 批量新增角色用户
     * @param roleUserList
     */
    void batchInsert(@Param("roleUserList")List<SysRoleUser> roleUserList);

    /**
     * 根据角色ID集合查找具有该角色的用户ID集合
     * @param roleIdList
     * @return
     */
    List<Integer> getUserIdListByRoleIdList(@Param("roleIdList") List<Integer>roleIdList);
}